package com.doctcloud.hisystem.common.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.doctcloud.hisystem.tables.domain.common.SysDictTypeEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.math.BigInteger;
import java.util.List;

@Mapper
public interface SysDictTypeEntityMapper extends BaseMapper<SysDictTypeEntity> {
    /**
     * 根据主键查询
     * @param dictId 主键ID
     * @return SysDictTypeEntity对象
     */
    SysDictTypeEntity selectByPrimaryKey(@Param("dictId") Long dictId);

    /**
     * 查询所有
     * @return SysDictTypeEntity对象列表
     */
    List<SysDictTypeEntity> selectAll();

    /**
     * 根据实体中的条件查询
     * @param sysDictTypeEntity 查询条件实体
     * @return SysDictTypeEntity对象列表
     */
    List<SysDictTypeEntity> select(SysDictTypeEntity sysDictTypeEntity);

    /**
     * 新增
     * @param sysDictTypeEntity 要新增的对象
     * @return 受影响的行数
     */
    int insert(SysDictTypeEntity sysDictTypeEntity);

    /**
     * 根据主键更新
     * @param sysDictTypeEntity 要更新的对象
     * @return 受影响的行数
     */
    int updateByPrimaryKey(SysDictTypeEntity sysDictTypeEntity);

    /**
     * 根据主键动态更新（只更新不为null的字段）
     * @param sysDictTypeEntity 要更新的对象
     * @return 受影响的行数
     */
    int updateByPrimaryKeySelective(SysDictTypeEntity sysDictTypeEntity);

    /**
     * 根据主键删除
     * @param dictId 主键ID
     * @return 受影响的行数
     */
    int deleteByPrimaryKey(@Param("dictId") Long dictId);

    /**
     * 校验字典类型称是否唯一
     *
     * @param dictType 字典类型
     * @return 结果
     */
    public SysDictTypeEntity checkDictTypeUnique(String dictType);
    /**
     * 批量删除字典类型信息
     *
     * @param dictIds 需要删除的字典ID
     * @return 结果
     */
    public int deleteDictTypeByPrimaryKeys(List<Long> dictIds);

    /**
     * 根据实体类中的属性查询
     * @param dictType
     * @return
     */
    public List<SysDictTypeEntity> selectDictTypeByType(String dictType);
}
